**14.10. Домашнее задание**

ЗАДАЧА: В качестве итогового задания вам необходимо реализовать программу, выполняющую автозаполнение введенного слова по изначально заданному словарю.
То есть, вам необходимо построить дерево, которое будет словарем, а затем выполнить проверку и предложить подходящие варианты слов по введенной части. Дополнение можно реализовываться как по нажатию какой-либо клавиши, так и любым другим способом. После нажатия программа не должна завершаться и ждать нового ввода от пользователя.

Реализовано:
 - Префиксное дерево, которе выполняет функцию словаря.
 - Метод *findWords* для получения массива слов удовлетворяющих поиску по ключевому слову.
 - Метод *insert* для вставки новых слов в дерево.
 - Другие методы для обеспечения работы класса.
 - Интерфейс, позволяющий получать списки слов соответствующих ключевому слову и добавлять новые слова в словарь.


Интерфейс программы:

Перед каждым вводом выводится список слов в словаре:

```
Keywords in the dictionary: doc doctor document dog dot duck mail man master mode model moment 
```

Далее предлагается ввести часть любого из выше указанных слов или команду для перехода к другому меню:

```
Enter a part of any keyword from the dictionary (0 - Exit, 1 - Go to adding to the dictionary): doc
```
После ввода будут выведены слова из словаря, соответствующие введенному ключевому слову:
```
Keywords for autocomplete: doc doctor document
```
При выборе команды перехода в меню добавления слов:

```
Keywords in the dictionary: doc doctor document dog dot duck mail man master mode model moment 
Enter a word to add to the dictionary [a-z] (0 - Exit, 1 - Go to autofill): zero

Keywords in the dictionary: doc doctor document dog dot duck mail man master mode model moment zero 
```
При добавлении каждого нового слова программа будет выводить их.
В данной программе количество выводимых слов 20. Это можно изменить в параметре *max* в методе *findWords* в *Input.cpp*